<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="GNU source-highlight 1.6.3
by Lorenzo Bettini, bettini@gnu.org
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite">
<title>code/Ch2/mail/Mailbox.java</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000EE" vlink="#551A8B" alink="#FF0000">
<pre>
<tt>
001: <i><font color=#9A1900>/**</font></i>
002: <i><font color=#9A1900>   A mailbox contains messages that can be listed, kept or discarded.</font></i>
003: <i><font color=#9A1900>*/</font></i>
004: <b><font color=#0000FF>public</font></b> <b><font color=#0000FF>class</font></b> Mailbox
005: <font color=#FF0000>{</font>
006:    <i><font color=#9A1900>/**</font></i>
007: <i><font color=#9A1900>      Creates Mailbox object.</font></i>
008: <i><font color=#9A1900>      @param aPasscode passcode number</font></i>
009: <i><font color=#9A1900>      @param aGreeting greeting string</font></i>
010: <i><font color=#9A1900>   */</font></i>
011:    <b><font color=#0000FF>public</font></b> <b><font color=#000000>Mailbox</font></b><font color=#990000>(</font>String aPasscode<font color=#990000>,</font> String aGreeting<font color=#990000>)</font>
012:    <font color=#FF0000>{</font>
013:       passcode <font color=#990000>=</font> aPasscode<font color=#990000>;</font>
014:       greeting <font color=#990000>=</font> aGreeting<font color=#990000>;</font>
015:       newMessages <font color=#990000>=</font> <b><font color=#0000FF>new</font></b> <b><font color=#000000>MessageQueue</font></b><font color=#990000>(</font><font color=#990000>)</font><font color=#990000>;</font>
016:       keptMessages <font color=#990000>=</font> <b><font color=#0000FF>new</font></b> <b><font color=#000000>MessageQueue</font></b><font color=#990000>(</font><font color=#990000>)</font><font color=#990000>;</font>
017:    <font color=#FF0000>}</font>
018: 
019:    <i><font color=#9A1900>/**</font></i>
020: <i><font color=#9A1900>      Check if the passcode is correct.</font></i>
021: <i><font color=#9A1900>      @param aPasscode a passcode to check</font></i>
022: <i><font color=#9A1900>      @return true if the supplied passcode matches the mailbox passcode</font></i>
023: <i><font color=#9A1900>   */</font></i>
024:    <b><font color=#0000FF>public</font></b> <font color=#009900>boolean</font> <b><font color=#000000>checkPasscode</font></b><font color=#990000>(</font>String aPasscode<font color=#990000>)</font>
025:    <font color=#FF0000>{</font>
026:       <b><font color=#0000FF>return</font></b> aPasscode<font color=#990000>.</font><b><font color=#000000>equals</font></b><font color=#990000>(</font>passcode<font color=#990000>)</font><font color=#990000>;</font>
027:    <font color=#FF0000>}</font>
028: 
029:    <i><font color=#9A1900>/**</font></i>
030: <i><font color=#9A1900>      Add a message to the mailbox.</font></i>
031: <i><font color=#9A1900>      @param aMessage the message to be added</font></i>
032: <i><font color=#9A1900>   */</font></i>
033:    <b><font color=#0000FF>public</font></b> <font color=#009900>void</font> <b><font color=#000000>addMessage</font></b><font color=#990000>(</font>Message aMessage<font color=#990000>)</font>
034:    <font color=#FF0000>{</font>
035:       newMessages<font color=#990000>.</font><b><font color=#000000>add</font></b><font color=#990000>(</font>aMessage<font color=#990000>)</font><font color=#990000>;</font>
036:    <font color=#FF0000>}</font>
037: 
038:    <i><font color=#9A1900>/**</font></i>
039: <i><font color=#9A1900>      Get the current message.</font></i>
040: <i><font color=#9A1900>      @return the current message</font></i>
041: <i><font color=#9A1900>   */</font></i>
042:    <b><font color=#0000FF>public</font></b> Message <b><font color=#000000>getCurrentMessage</font></b><font color=#990000>(</font><font color=#990000>)</font>
043:    <font color=#FF0000>{</font>
044:       <b><font color=#0000FF>if</font></b> <font color=#990000>(</font>newMessages<font color=#990000>.</font><b><font color=#000000>size</font></b><font color=#990000>(</font><font color=#990000>)</font> <font color=#990000>&gt;</font> <font color=#993399>0</font><font color=#990000>)</font>
045:          <b><font color=#0000FF>return</font></b> newMessages<font color=#990000>.</font><b><font color=#000000>getFirst</font></b><font color=#990000>(</font><font color=#990000>)</font><font color=#990000>;</font>
046:       <b><font color=#0000FF>else</font></b> <b><font color=#0000FF>if</font></b> <font color=#990000>(</font>keptMessages<font color=#990000>.</font><b><font color=#000000>size</font></b><font color=#990000>(</font><font color=#990000>)</font> <font color=#990000>&gt;</font> <font color=#993399>0</font><font color=#990000>)</font>
047:          <b><font color=#0000FF>return</font></b> keptMessages<font color=#990000>.</font><b><font color=#000000>getFirst</font></b><font color=#990000>(</font><font color=#990000>)</font><font color=#990000>;</font>
048:       <b><font color=#0000FF>else</font></b>
049:          <b><font color=#0000FF>return</font></b> <b><font color=#0000FF>null</font></b><font color=#990000>;</font>
050:    <font color=#FF0000>}</font>
051: 
052:    <i><font color=#9A1900>/**</font></i>
053: <i><font color=#9A1900>      Remove the current message from the mailbox.</font></i>
054: <i><font color=#9A1900>      @return the message that has just been removed</font></i>
055: <i><font color=#9A1900>   */</font></i>
056:    <b><font color=#0000FF>public</font></b> Message <b><font color=#000000>removeCurrentMessage</font></b><font color=#990000>(</font><font color=#990000>)</font>
057:    <font color=#FF0000>{</font>
058:       <b><font color=#0000FF>if</font></b> <font color=#990000>(</font>newMessages<font color=#990000>.</font><b><font color=#000000>size</font></b><font color=#990000>(</font><font color=#990000>)</font> <font color=#990000>&gt;</font> <font color=#993399>0</font><font color=#990000>)</font>
059:          <b><font color=#0000FF>return</font></b> newMessages<font color=#990000>.</font><b><font color=#000000>removeFirst</font></b><font color=#990000>(</font><font color=#990000>)</font><font color=#990000>;</font>
060:       <b><font color=#0000FF>else</font></b> <b><font color=#0000FF>if</font></b> <font color=#990000>(</font>keptMessages<font color=#990000>.</font><b><font color=#000000>size</font></b><font color=#990000>(</font><font color=#990000>)</font> <font color=#990000>&gt;</font> <font color=#993399>0</font><font color=#990000>)</font>
061:          <b><font color=#0000FF>return</font></b> keptMessages<font color=#990000>.</font><b><font color=#000000>removeFirst</font></b><font color=#990000>(</font><font color=#990000>)</font><font color=#990000>;</font>
062:       <b><font color=#0000FF>else</font></b>
063:          <b><font color=#0000FF>return</font></b> <b><font color=#0000FF>null</font></b><font color=#990000>;</font>
064:    <font color=#FF0000>}</font>
065: 
066:    <i><font color=#9A1900>/**</font></i>
067: <i><font color=#9A1900>      Save the current message</font></i>
068: <i><font color=#9A1900>   */</font></i>
069:    <b><font color=#0000FF>public</font></b> <font color=#009900>void</font> <b><font color=#000000>saveCurrentMessage</font></b><font color=#990000>(</font><font color=#990000>)</font>
070:    <font color=#FF0000>{</font>
071:       Message m <font color=#990000>=</font> <b><font color=#000000>removeCurrentMessage</font></b><font color=#990000>(</font><font color=#990000>)</font><font color=#990000>;</font>
072:       <b><font color=#0000FF>if</font></b> <font color=#990000>(</font>m <font color=#990000>!</font><font color=#990000>=</font> <b><font color=#0000FF>null</font></b><font color=#990000>)</font>
073:          keptMessages<font color=#990000>.</font><b><font color=#000000>add</font></b><font color=#990000>(</font>m<font color=#990000>)</font><font color=#990000>;</font>
074:    <font color=#FF0000>}</font>
075: 
076:    <i><font color=#9A1900>/**</font></i>
077: <i><font color=#9A1900>      Change mailbox's greeting.</font></i>
078: <i><font color=#9A1900>      @param newGreeting the new greeting string</font></i>
079: <i><font color=#9A1900>   */</font></i>
080:    <b><font color=#0000FF>public</font></b> <font color=#009900>void</font> <b><font color=#000000>setGreeting</font></b><font color=#990000>(</font>String newGreeting<font color=#990000>)</font>
081:    <font color=#FF0000>{</font>
082:       greeting <font color=#990000>=</font> newGreeting<font color=#990000>;</font>
083:    <font color=#FF0000>}</font>
084: 
085:    <i><font color=#9A1900>/**</font></i>
086: <i><font color=#9A1900>      Change mailbox's passcode.</font></i>
087: <i><font color=#9A1900>      @param newPasscode the new passcode</font></i>
088: <i><font color=#9A1900>   */</font></i>
089:    <b><font color=#0000FF>public</font></b> <font color=#009900>void</font> <b><font color=#000000>setPasscode</font></b><font color=#990000>(</font>String newPasscode<font color=#990000>)</font>
090:    <font color=#FF0000>{</font>
091:       passcode <font color=#990000>=</font> newPasscode<font color=#990000>;</font>
092:    <font color=#FF0000>}</font>
093: 
094:    <i><font color=#9A1900>/**</font></i>
095: <i><font color=#9A1900>      Get the mailbox's greeting.</font></i>
096: <i><font color=#9A1900>      @return the greeting</font></i>
097: <i><font color=#9A1900>   */</font></i>
098:    <b><font color=#0000FF>public</font></b> String <b><font color=#000000>getGreeting</font></b><font color=#990000>(</font><font color=#990000>)</font>
099:    <font color=#FF0000>{</font>
100:       <b><font color=#0000FF>return</font></b> greeting<font color=#990000>;</font>
101:    <font color=#FF0000>}</font>
102: 
103:    <b><font color=#0000FF>private</font></b> MessageQueue newMessages<font color=#990000>;</font>
104:    <b><font color=#0000FF>private</font></b> MessageQueue keptMessages<font color=#990000>;</font>
105:    <b><font color=#0000FF>private</font></b> String greeting<font color=#990000>;</font>
106:    <b><font color=#0000FF>private</font></b> String passcode<font color=#990000>;</font>
107: <font color=#FF0000>}</font>
</tt>
</pre>
</body>
</html>
